
#ifndef  HELPER_WATCH_TICK_H
#define  HELPER_WATCH_TICK_H

#include "Timespan.h"

namespace helper {
namespace watch {


template<typename T, typename D>
struct IClock {
    typedef T TimePoint;
    typedef D Duration;

    virtual TimePoint init() = 0; //epoch
    virtual TimePoint now() = 0; //now 
    virtual const Duration diff(const Timespan<TimePoint> & ts) const = 0;
};

}// end of namespace watch
}// end of namespace helper

#endif   /* HELPER_WATCH_TICK_H */
